Networking in which content is distributed based on a name indicating the content has been proposed. PTL 1 and Non-PTL 1 disclose content centric networking (CCN), which is one type of such networking.
In a content centric network, a server device that publishes content divides the content into at least one object, which is referred to as a “chunk”, and a client device obtains the content as per divided object unit. Furthermore, in the content centric network, a communication device (hereinafter, referred to as “forwarding device”) that has forwarded an object can save (cache) the object. When the forwarding device has received an interest packet (request packet) that requests an object stored therein from the client device, the forwarding device can transmit the object stored therein to the client device that has transmitted the interest packet, without forwarding the interest packet to the server device.
The following will describe an example of an operation of the forwarding device. The forwarding device manages a content store (CS), a forward information base (FIB), and a pending interest table (PIT). “CS” refers to information indicating an object stored in this device. “FIB” refers to information indicating the relationship between an interest packet and an interface from which the interest packet is to be forwarded. “PIT” refers to information indicating the relationship between an object requested by a forwarded interest packet and an interface that has received the forwarded interest packet.
Upon receiving an interest packet, the forwarding device searches the CS, and determines whether or not an object requested by the interest packet is stored. If the requested object is stored, the forwarding device transmits the object stored therein to the client device that transmitted the interest packet. On the other hand, if the object requested by the received interest packet is not stored, the forwarding device searches the PIT, and determines whether or not it has already forwarded an interest packet that requested the same object as that of the received interest packet and is waiting to receive the object. If the forwarding device is waiting to receive the object, the forwarding device does not forward the received interest packet, and updates the PIT so that the interface that received the interest packet is associated with the object requested by this interest packet. On the other hand, if the forwarding device is not waiting to receive the object requested by the received interest packet, the forwarding device forwards the interest packet from the interface determined based on the FIB and updates the PIT. Furthermore, upon receiving the object, the forwarding device determines the interface to which the object is to be forwarded based on the PIT, and deletes the information regarding the object from the PIT. Furthermore, the forwarding device updates the CS by saving the received and forwarded object.
NPTL 2 discloses a configuration in which a CCN packet is forwarded in an OpenFlow network. Here, “OpenFlow network” refers to a network in which a communication device that forwards a packet, and a control device that sets, in the communication device, the forwarding destination for the packet of the communication device are separate. The control device of the OpenFlow network identifies flows based on, for example, the destination address, the source address, the destination port number, or the source port number of an IP packet, determines a pathway for each flow in the OpenFlow network, and sets an output interface for the packet that belongs to the flow, in forwarding devices on the determined pathway. In NPTL 2, the forwarding of a CCN packet in the OpenFlow network is performed by obtaining a hash value of the name of the content contained in the CCN packet and setting the hash value in an IP packet destination address.